Detecting concurrency anomalies in transactional memory programs
نویسندگان
چکیده
Concurrent programs may suffer from concurrency anomalies that may lead to erroneous and unpredictable program behaviors. To ensure program correctness, these anomalies must be diagnosed and corrected. This paper addresses the detection of both lowand high-level anomalies in the Transactional Memory setting. We propose a static analysis procedure and a framework to address Transactional Memory anomalies. We start by dealing with the classic case of low-level dataraces, identifying concurrent accesses to shared memory cells that are not protected within the scope of a memory transaction. Then, we address the case of high-level dataraces, bringing the programmer’s attention to pairs of memory transactions that were misspecified and should have been combined into a single transaction. Our framework was applied to a set of programs, collected form different sources, containing well known lowand high-level anomalies. The framework demonstrated to be accurate, confirming the effectiveness of using static analysis techniques to precisely identify concurrency anomalies in Transactional Memory programs.
منابع مشابه
A Static Approach for Detecting Concurrency Anomalies in Transactional Memory
Programs containing concurrency anomalies will most probably exhibit harmful erroneous and unpredictable behaviors. To ensure program correctness, the sources of those anomalies must be located and corrected. Concurrency anomalies in Transactional Memory (TM) programs should also be diagnosed and fixed. In this paper we propose a framework to deal with two different categories of concurrency an...
متن کاملEfficient and Correct Transactional Memory Programs Combining Snapshot Isolation and Static Analysis
The use of the Snapshot Isolation (SI) level in Transactional Memory (TM) eliminates the need of tracking memory read accesses, reducing the run-time overhead and fastening the commit phase. By detecting only write-write conflicts, SI allows many memory transactions to succeed that would otherwise abort if serialized. This higher commit rate comes at the expense of introducing anomalous behavio...
متن کاملReducing the Integration Complexity of Software Transactional Memory with TBoost.STM
Transactional memory (TM) is a concurrency control paradigm that reduces the difficulty of writing parallel programs and supports the efficient execution of some concurrent workloads. While TM offers advantages over other abstractions, it can sometimes require complex hardware, programming language extensions, specific compiler support, or enforce impractical software design, making it unrealis...
متن کاملCan Software Transactional Memory Make Concurrent Programs Simple and Safe?
Parallel programs are key to exploiting the performance of modern computers, but traditional facilities for synchronizing threads of execution are notoriously difficult to use correctly, especially for problems with a non-trivial structure. Software transactional memory is a different approach to managing the complexity of interacting threads. By eliminating locking, many of the complexities of...
متن کاملCompiler and runtime techniques for software transactional memory optimization
Software transactional memory (STM) systems are an attractive environment to evaluate optimistic concurrency. We describe our experience of supporting and optimizing an STM system at both the managed runtime and compiler levels. We describe the design policies of our STM system, and the statistics collected by the runtime to identify performance bottlenecks and guide tuning decisions. We presen...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Comput. Sci. Inf. Syst.
دوره 8 شماره
صفحات -
تاریخ انتشار 2011